RMAN备份恢复之控制文件的恢复(二) | 您所在的位置:网站首页 › rman-06172 恢复控制文件 › RMAN备份恢复之控制文件的恢复(二) |
控制文件对于数据库来说至关重要,在数据库的恢复过程中,首先需要恢复初始化参数文件,然后就是控制文件的恢复。 RMAN采用CATALOG方式还是NOCATALOG方式,以及是否启用了AUTOBACKUP,决定了控制文件的恢复方法。 RMAN备份恢复之控制文件的恢复(一):http://yangtingkun.itpub.net/post/468/305766 这篇文章介绍NOCATALOG方式下通过CONTROLFILE AUTOBACKUP来恢复控制文件。
在NOCATALOG方式下,如果控制文件的自动备份是打开的,那么控制文件丢失后,也可以方便的利用控制文件的自动备份进行恢复。 F:>sqlplus "/@test1 as sysdba" SQL*Plus: Release 9.2.0.4.0 - Production on 星期一 7月 23 21:37:28 2007 Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved. 连接到:Oracle9i Enterprise Edition Release 9.2.0.4.0 - ProductionWith the Partitioning, Oracle Label Security, OLAP and Oracle Data Mining optionsJServer Release 9.2.0.4.0 - Production SQL> shutdown immediate数据库已经关闭。已经卸载数据库。ORACLE 例程已经关闭。SQL> host move F:oracleoradata est1control01.ctl F:oracleoradata est1control01.bak SQL> host move F:oracleoradata est1control02.ctl F:oracleoradata est1control02.bak SQL> host move F:oracleoradata est1control03.ctl F:oracleoradata est1control03.bak SQL> exit从Oracle9i Enterprise Edition Release 9.2.0.4.0 - ProductionWith the Partitioning, Oracle Label Security, OLAP and Oracle Data Mining optionsJServer Release 9.2.0.4.0 - Production中断开 F:> 上面删除了控制文件,这个时候数据库已经无法打开了: F:>sqlplus "/@test1 as sysdba" SQL*Plus: Release 9.2.0.4.0 - Production on 星期一 7月 23 21:44:02 2007 Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved. 已连接到空闲例程。 SQL> startupORACLE 例程已经启动。 Total System Global Area 110173900 bytesFixed Size 454348 bytesVariable Size 83886080 bytesDatabase Buffers 25165824 bytesRedo Buffers 667648 bytesORA-00205: ????????????????????? SQL> shutdownORA-01507: ?????? ORACLE 例程已经关闭。SQL>SQL> exit从Oracle9i Enterprise Edition Release 9.2.0.4.0 - ProductionWith the Partitioning, Oracle Label Security, OLAP and Oracle Data Mining optionsJServer Release 9.2.0.4.0 - Production中断开 下面尝试使用RMAN恢复控制文件: F:>rman target /@test1 恢复管理器: 版本9.2.0.4.0 - Production Copyright (c) 1995, 2002, Oracle Corporation. All rights reserved. 已连接到目标数据库 (未启动) RMAN> startup nomount Oracle 例程已启动 系统全局区域总计 110173900 字节 Fixed Size 454348 字节Variable Size 83886080 字节Database Buffers 25165824 字节Redo Buffers 667648 字节 RMAN> restore controlfile from autobackup; 启动 restore 于 23-7月 -07 正在使用目标数据库控制文件替代恢复目录分配的通道: ORA_DISK_1通道 ORA_DISK_1: sid=11 devtype=DISKRMAN-00571: ===========================================================RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============RMAN-00571: ===========================================================RMAN-03002: failure of restore command at 07/23/2007 22:04:17RMAN-06495: must explicitly specify DBID with SET DBID command RMAN> set dbid 974710760 正在执行命令: SET DBID RMAN> show controlfile autobackup format; RMAN 配置参数为:CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default RMAN> set controlfile autobackup format for device type disk to 'f:oracleackup\%F'; 正在执行命令: SET CONTROLFILE AUTOBACKUP FORMAT RMAN> restore controlfile from autobackup; 启动 restore 于 23-7月 -07 使用通道 ORA_DISK_1通道 ORA_DISK_1: 寻找以下日期的自动备份: 20070723通道 ORA_DISK_1: 寻找以下日期的自动备份: 20070722通道 ORA_DISK_1: 寻找以下日期的自动备份: 20070721通道 ORA_DISK_1: 寻找以下日期的自动备份: 20070720通道 ORA_DISK_1: 寻找以下日期的自动备份: 20070719通道 ORA_DISK_1: 寻找以下日期的自动备份: 20070718通道 ORA_DISK_1: 寻找以下日期的自动备份: 20070717通道 ORA_DISK_1: 没有找到 7 天之内的自动备份RMAN-00571: ===========================================================RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============RMAN-00571: ===========================================================RMAN-03002: failure of restore command at 07/23/2007 22:07:28RMAN-06172: no autobackup found or specified handle is not a valid copy or piece RMAN> restore controlfile from autobackup maxdays 20; 启动 restore 于 23-7月 -07 使用通道 ORA_DISK_1通道 ORA_DISK_1: 寻找以下日期的自动备份: 20070723通道 ORA_DISK_1: 寻找以下日期的自动备份: 20070722通道 ORA_DISK_1: 寻找以下日期的自动备份: 20070721通道 ORA_DISK_1: 寻找以下日期的自动备份: 20070720通道 ORA_DISK_1: 寻找以下日期的自动备份: 20070719通道 ORA_DISK_1: 寻找以下日期的自动备份: 20070718通道 ORA_DISK_1: 寻找以下日期的自动备份: 20070717通道 ORA_DISK_1: 寻找以下日期的自动备份: 20070716通道 ORA_DISK_1: 寻找以下日期的自动备份: 20070715通道 ORA_DISK_1: 寻找以下日期的自动备份: 20070714通道 ORA_DISK_1: 寻找以下日期的自动备份: 20070713通道 ORA_DISK_1: 寻找以下日期的自动备份: 20070712通道 ORA_DISK_1: 寻找以下日期的自动备份: 20070711通道 ORA_DISK_1: 寻找以下日期的自动备份: 20070710通道 ORA_DISK_1: 寻找以下日期的自动备份: 20070709通道 ORA_DISK_1: 寻找以下日期的自动备份: 20070708通道 ORA_DISK_1: 已找到的自动备份: f:oracleackupc-974710760-20070708-00通道 ORA_DISK_1: 从自动备份复原控制文件已完成正在复制控制文件输出文件名=F:ORACLEORADATATEST1CONTROL01.CTL输出文件名=F:ORACLEORADATATEST1CONTROL02.CTL输出文件名=F:ORACLEORADATATEST1CONTROL03.CTL完成 restore 于 23-7月 -07 RMAN> alter database mount; 数据库已加载 RMAN> alter database open; RMAN-00571: ===========================================================RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============RMAN-00571: ===========================================================RMAN-03002: failure of alter db command at 07/23/2007 22:08:44ORA-01589: 要打开数据库则必须使用 RESETLOGS 或 NORESETLOGS 选项 RMAN> alter database open resetlogs; RMAN-00571: ===========================================================RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============RMAN-00571: ===========================================================RMAN-03002: failure of alter db command at 07/23/2007 22:08:53ORA-01152: 文件 1 没有从完备的旧备份中恢复ORA-01110: 数据文件 1: 'F:ORACLEORADATATEST1SYSTEM01.DBF' RMAN> recover database; 启动 recover 于 23-7月 -07使用通道 ORA_DISK_1 正在开始介质的恢复 存档日志线程 1 序列 2 已作为文件 F:ORACLEORADATATEST1REDO01.LOG 存在于磁盘上 存档日志线程 1 序列 3 已作为文件 F:ORACLEORADATATEST1REDO02.LOG 存在于磁盘上 存档日志线程 1 序列 4 已作为文件 F:ORACLEORADATATEST1REDO03.LOG 存在于磁盘上 无法找到存档日志存档日志线程 =1 序列=0Oracle 错误:ORA-01547: 警告: RECOVER 成功但 OPEN RESETLOGS 将出现如下错误ORA-01152: 文件 1 没有从完备的旧备份中恢复ORA-01110: 数据文件 1: 'F:ORACLEORADATATEST1SYSTEM01.DBF' RMAN-00571: ===========================================================RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============RMAN-00571: ===========================================================RMAN-03002: failure of recover command at 07/23/2007 22:09:17RMAN-06054: media recovery requesting unknown log: thread 1 scn 58880369 RMAN> catalog archivelog 'F:oracleoradata est1ARCHIVELOGARC00001.001'; 已编目的存档日志存档日志文件名 =F:ORACLEORADATATEST1ARCHIVELOGARC00001.001 记录 ID=35 时间戳 =628726349 RMAN> recover database; 启动 recover 于 23-7月 -07使用通道 ORA_DISK_1 正在开始介质的恢复 存档日志线程 1 序列 1 已作为文件 F:ORACLEORADATATEST1ARCHIVELOGARC00001.001 存在于磁盘上存档日志线程 1 序列 2 已作为文件 F:ORACLEORADATATEST1REDO01.LOG 存在于磁盘上 存档日志线程 1 序列 3 已作为文件 F:ORACLEORADATATEST1REDO02.LOG 存在于磁盘上 存档日志线程 1 序列 4 已作为文件 F:ORACLEORADATATEST1REDO03.LOG 存在于磁盘上 存档日志文件名 =F:ORACLEORADATATEST1ARCHIVELOGARC00001.001 线程 =1 序列 =0存档日志文件名 =F:ORACLEORADATATEST1REDO01.LOG 线程 =1 序列 =2存档日志文件名 =F:ORACLEORADATATEST1REDO02.LOG 线程 =1 序列 =3存档日志文件名 =F:ORACLEORADATATEST1REDO03.LOG 线程 =1 序列 =4完成介质的恢复完成 recover 于 23-7月 -07 RMAN> alter database open resetlogs; 数据库已打开 RMAN> 上面碰到的第一个错误:RMAN-06495是由于没有设置DBID造成的,通过控制文件名称中包含的DBID信息设置DBID,并且根据控制文件的位置设置控制文件自动备份的目录和格式。 第二个错误:RMAN-06172是由于控制文件的生成日期早于恢复默认查询日期(7天),通过设置MAXDAYS来避免这个错误的产生。 第三个错误说明恢复了控制文件后,数据库必须以RESETLOGS方式打开。 第四个错误表示,由于恢复了以前备份的控制文件,目前数据库数据文件和控制文件不一致,因此必须要进行恢复。 最后一个错误是由于归档日志的产生晚于控制文件,因此控制文件中没有包括归档的信息,于是在恢复的过程中由于没有找到第一个归档信息,而导致恢复无法完成。通过CATALOG命令使得RMAN记录了归档信息后,恢复完成。
|
CopyRight 2018-2019 实验室设备网 版权所有 |